Add m2p translation to read_cr3 on x86_64.
authorcl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Wed, 8 Feb 2006 15:58:01 +0000 (15:58 +0000)
committercl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Wed, 8 Feb 2006 15:58:01 +0000 (15:58 +0000)
From: Jan Beulich <JBeulich@novell.com>
From: Nakajima, Jun <jun.nakajima@intel.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/system.h

index 7520d06eacd020d3d3aa7b579b274744fc271b12..6a29a815f0c3c23bae7f0f002e65ef72c4bb4079 100644 (file)
@@ -179,12 +179,11 @@ static inline void write_cr0(unsigned long val)
        asm volatile("movq %0,%%cr0" :: "r" (val));
 } 
 
-static inline unsigned long read_cr3(void)
-{ 
-       unsigned long cr3;
-       asm("movq %%cr3,%0" : "=r" (cr3));
-       return cr3;
-} 
+#define read_cr3() ({ \
+       unsigned long __dummy; \
+       asm("movq %%cr3,%0" : "=r" (__dummy)); \
+       return machine_to_phys(__dummy); \
+})
 
 static inline unsigned long read_cr4(void)
 {